package com.hanxiaozhang.flyweight.no1;

/**
 * 〈一句话功能简述〉<br>
 * 〈〉
 *
 * @author hanxinghua
 * @create 2025/4/17
 * @since 1.0.0
 */
public class Client {

    // 颜色数组
    private static final String COLORS[] = {"Red", "Green", "Blue", "White", "Black"};

    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            Circle circle = (Circle) ShapeFactory.getCircle(getRandomColor());
            circle.setX(getRandomX());
            circle.setY(getRandomY());
            circle.setRadius(100);
            // 这里传入的颜色其实是多余的，因为我们已经在工厂中根据颜色创建了唯一的圆，所以这里的颜色只是为了演示。实际使用时，颜色应该在工厂方法中处理。
            circle.draw(COLORS[i % COLORS.length], "true");
        }
    }

    private static String getRandomColor() { return COLORS[(int) (Math.random() * COLORS.length)]; }
    private static int getRandomX() { return (int) (Math.random() * 100 ); }
    private static int getRandomY() { return (int) (Math.random() * 100); }
}
